package com.qikecn.utils;

import java.io.File;
import java.util.Date;

import cn.geekapp.utils.RandomUtils;
import cn.geekapp.utils.StringUtils;

/**
 * 文件工具类
 * @author wangst
 *
 */
public class FileUtil {
	
	/**
	 * 文件移动
	 * @param srcFile 原文件路径
	 * @param destFile 目的文件路径
	 * @return
	 */
	public static boolean moveFile(String srcFilePath, String destFilePath){
		
		//System.out.println("--srcFilePath:"+srcFilePath);
		//System.out.println("--destFilePath:"+destFilePath);
		
		if(StringUtils.isEmpty(srcFilePath) || StringUtils.isEmpty(destFilePath))
			return false;
		File srcFile = new File(srcFilePath);
		if(!srcFile.exists())
			return false;
		File destFile = new File(destFilePath);
		if(!destFile.getParentFile().exists())
			destFile.getParentFile().mkdirs();
		if(destFile.exists())
			destFile.delete();
		return srcFile.renameTo(destFile);
	}
	
	/**
	 * 删除文件
	 * @param filepath
	 * @return
	 */
	public static boolean delFile(String filepath){
		boolean flag = false;
		if(StringUtils.isEmpty(filepath))
			return flag;
		File file = new File(filepath);
		if(file.exists())
			flag = file.delete();
		return flag;
	}
	
	/**
	 * 根据文件名称获取文件后缀
	 * @param filename 文件名称
	 * @return
	 */
	public static String getSuffixByFilename(String filename){
		if(StringUtils.isEmpty(filename))
			return "";
		if(filename.indexOf('.') < 0)
			return "";
		return filename.substring(filename.lastIndexOf('.') + 1);
	}
	
	/**
	 * 根据url或文件路径获取文件名称
	 * @param url
	 * @return
	 */
	public static String getFilenameByUrl(String url){
		if(StringUtils.isEmpty(url))
			return "";
		if(url.indexOf('/') < 0)
			return url;
		String filename = url.substring(url.lastIndexOf('/') + 1);
		if(filename.indexOf('?') > 0) {
			filename = filename.substring(0, filename.lastIndexOf('?'));
		}
		return filename;
	}
	
	/**
	 * 生成文件名称
	 * @param suffix 后缀，如jpg,png,jpeg等,为空时，不产生后缀
	 * @return
	 */
	public static String getFilenameByDatetime(String suffix){
		if(StringUtils.isEmpty(suffix)){
			return DateUtil.getDateStrByFormat(new Date(), "yyyyMMddHHmmssSSS") + RandomUtils.getRandomCapitalLetters(6);
		}
		return DateUtil.getDateStrByFormat(new Date(), "yyyyMMddHHmmssSSS") + RandomUtils.getRandomCapitalLetters(6) + "." + suffix;
	}
	
	
	public static void main(String[] args) {
	
		
	}
}
